<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    let p1 = new Promise((resolve, reject) => {
        setTimeout(function () {
            resolve()
        }, 5000)
    })
    console.log(p1);

    //假设一个商城，商品目录，和商品列表
    // 目录的接口 http://localhost/getCtalog
    // {
    //     code:200,
    //     data:[
    //         {id:101,name:'生鲜'}，
    //         {id:201,name:'家电'}
    //     ]
    // }

    // 商品的接口 http://localhost/getProduct?cat_id=?

    // axios.get('http://localhost/getCtalog').then(
    //     let cat_id=reponse.data.data[0].id;
    //     let url =http://localhost/getProduct?cat_id=cat_id
    //     axios.get(url).then()
    // )

    var val =2;
    var response1;

    let step1 = function (resolve, reject) {
        console.log('步骤1 需要去获取目录数据');
        setTimeout(function () {
            if (val > 0) {
                response1=val*3
                resolve(response1)
            } else {
                reject(val)
            }

        }, 4000)

    }

    // step2 里面的值依赖于 step1的 resolve
    let step2 = function (resolve, reject) {
        console.log('步骤2 根据目录列表来获取商品数据');
        setTimeout(function () {
            if (response1 > 0) {
                resolve(response1*2)
            } else {
                reject(val)
            }
        }, 3000)

    }

    // new Promise(step1).then((response)=>{
    //     // 这边then 的返回值response 是 step1 的返回值
    //     console.log(response);
    //     return new Promise(step2);
    // }).then((response2)=>{
    //     console.log(response2)
    //     //return new Promise(step3)
    // }).catch((err)=>{
    //     console.log(err);
    // }).finally(()=>{
    //     console.log('终结者！前面都执行完了，最后执行finall');
    // })


   function sample(){
          // 加了 async 的函数， return 1 ，等价于 resolve(1)
          //setTimeout(function(){
           // return 1;
          //},3000)
          return new Promise((res,rej)=>{
              setTimeout(function(){
                  res(10);
              },3000)
          })
         
    }
    // console.log(sample())

    // sample().then(res=>{
    //     console.log(res);
    // });

    //await 结合使用

    async function testAsync(){
        let result= await sample();
        console.log(result);
        console.log('i am in bootom');
    }

    testAsync();

    console.log('this is last')




</script>

</html>